#ifndef PIECE_H
#define PIECE_H


class piece
{

    public:
        piece();
        virtual ~piece();
        virtual void m_Rotate() = 0;
        virtual void Update_position(int row, int column) = 0;
        int getPosition(int pos){return m_position[pos];};
        int getSize(){return 4;};
        bool getMatPos(int row, int col){return m_pos_matrix[row][col];};
        int getColor(){return m_color;};

        enum {C_BLUE, C_GREEN, C_RED, C_YELLOW, C_PURPLE, C_ORANGE, C_WHITE};
        enum {S_DOWN, S_LEFT, S_UP, S_RIGHT};

    protected:
        bool m_pos_matrix[4][4]; //Where we store the current "shape" of the piece
        int m_position[2];
        int m_state; //State of the piece (orientation)
        int m_color;

    private:

};

#endif // PIECE_H
